package cn.com.surker.weight.entity;

import cn.com.surker.base.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 过磅订单表
 * </p>
 *
 * @author admin
 * @since 2024-11-06
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class WeightOrder extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 标识
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 订单号(U_Code)
     */
    private String code;

    /**
	 * 站点ID(StationID),DataSource表id
     */
    private Long stationId;

    /**
     * 站点(StationName)
     */
    private String station;

    /**
     * 公司ID
     */
    private Long orgId;

    /**
     * 微信openid(WXCode)
     */
    private String openid;

    /**
     * 电话(PhoneNumber)
     */
    private String phone;

    /**
     * 司机(DriverName)
     */
    private String driver;

    /**
     * 车牌号(BusNumber)
     */
    private String busNumber;

    /**
     * 订单状态(status)
     */
    private Integer orderStatus;

    /**
     * 订单类型(DType)
     */
    private Integer orderType;

    /**
     * 过磅场景(SceneType)
     */
    private Integer sceneType;

    /**
     * 供应商ID(SupplierID)
     */
    private Long supplierId;

    /**
     * 供应商(SupplierName)
     */
    private String supplier;

    /**
     * 供应商Code(SupplierCode)
     */
    private String taxCode;

    /**
     * 材料ID(GoodsesID)
     */
    private Long materialId;

    /**
     * 材料名称(GoodsesNameNorms)
     */
    private String materialNorms;

    /**
     * 仓位类型(PositionStatus)
     */
    private Integer storageType;

    /**
     * 检测员(InspectorName)
     */
    private String checker;

    /**
     * 检测员电话(InspectorPhone)
     */
    private String checkerPhone;
    /**
     * 供应商单号((suppliertax_id))
     */
    private String supplierOrderId;

    /**
     * 运输合同ID(TransportationContract_ID)
     */
    private Long transportContractId;

    /**
     * 仓位ID(Position_Information)
     */
    private Long storageId;

    /**
     * 仓位(代替ERP写的备注Remarks)
     */
    private String storage;

    /**
     * 磅单毛重(GrossWeight_S)
     */
    private Double supplierGross;

    /**
     * 磅单皮重(Tare_S)
     */
    private Double supplierTare;

    /**
     * 真实毛重(TrueGrossWeight)
     */
    private Double realGross;

    /**
	 * 真实净重(TrueNetWeight)
     */
    private Double realNetweight;

    /**
	 * 磅单净重,供应商净重(NetWeight_S)
     */
    private Double supplierNetweight;

    /**
     * 毛重(GrossWeight)
     */
    private Double gross;

    /**
     * 净重(NetWeight)
     */
    private Double netweight;

    /**
     * 皮重(Tare)
     */
    private Double tare;

    /**
     * 地磅单路径(PictureStorage)
     */
    private String imgUrl;

    /**
     * 车辆类型(CarType)
     */
    private Integer carType;

    /**
     * 明扣重量(MinusWeight)
     */
    private Double minusWeight;

    /**
     * 扣重(QuietlyMinusWeight)
     */
    private Double quietlyWeight;

    /**
     * 1原材2辅材3商砼退料4砼过磅5登记皮重6原材出售过磅0其它过磅,7:除渣
     */
    private Integer weightType;

    /**
     * 入场时间(InitialDate)
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date inTime;

    /**
     * 出场时间(FinalDate)
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date outTime;

    /**
     * 检测状态(Check_Status)
     */
    private Integer checkStatus;

    /**
     * 抽检状态(TwoCheck)
     */
    private Integer twoCheck;
    /**
     * 阀门状态(0:空闲1:开启,2:关闭,3:上料中)
     */
    private Integer doorStatus;

    /**
     * 是否打印0打印 1不打印
     */
    private Integer isPrint;

    /**
     * 是否检测(IsCheck)
     */
    private Integer isCheck;
    public WeightOrder(){}

    public WeightOrder(String code, Long stationId, String station, Long orgId, String openid, String phone, String driver, String busNumber, Integer orderStatus, Integer orderType, Integer sceneType, Long supplierId, String supplier, String taxCode, Long materialId, String materialNorms, Integer storageType, String checker, String checkerPhone, Long transportContractId, Long storageId, Double supplierGross, Double supplierTare, Double realGross, Double realNetweight, Double supplierNetweight, Double gross, Double netweight, Double tare, String imgUrl, Integer carType, Double minusWeight, Double quietlyWeight, Date inTime, Date outTime, Integer checkStatus, Integer twoCheck, Integer isCheck) {
        this.code = code;
        this.stationId = stationId;
        this.station = station;
        this.orgId = orgId;
        this.openid = openid;
        this.phone = phone;
        this.driver = driver;
        this.busNumber = busNumber;
        this.orderStatus = orderStatus;
        this.orderType = orderType;
        this.sceneType = sceneType;
        this.supplierId = supplierId;
        this.supplier = supplier;
        this.taxCode = taxCode;
        this.materialId = materialId;
        this.materialNorms = materialNorms;
        this.storageType = storageType;
        this.checker = checker;
        this.checkerPhone = checkerPhone;
        this.transportContractId = transportContractId;
        this.storageId = storageId;
        this.supplierGross = supplierGross;
        this.supplierTare = supplierTare;
        this.realGross = realGross;
        this.realNetweight = realNetweight;
        this.supplierNetweight = supplierNetweight;
        this.gross = gross;
        this.netweight = netweight;
        this.tare = tare;
        this.imgUrl = imgUrl;
        this.carType = carType;
        this.minusWeight = minusWeight;
        this.quietlyWeight = quietlyWeight;
        this.inTime = inTime;
        this.outTime = outTime;
        this.checkStatus = checkStatus;
        this.twoCheck = twoCheck;
        this.isCheck = isCheck;
    }

	@TableField(exist = false)
	private Integer spotCheck;
}
